#!/usr/bin/env python
# coding: utf-8

# In[ ]:





# In[1]:


import requests


# In[2]:


#1.url
analyze_url = 'https://api-cn.faceplusplus.com/facepp/v3/faceset/create'
#2.api账户、通行证
API_Key = 'UmmHosUEZzJI61aqoyKPhSB8sm93xnLc'
API_Secret ='3ZTKuLwcvpALsHyFu4Z-UIL5NSIR9af_'

# 3. 请求方法：POST
# 5.准备请求参数： payload

payload = {
    "api_key":API_Key,
    "api_secret":API_Secret,
   
    "image_url":'https://gss0.baidu.com/-vo3dSag_xI4khGko9WTAnF6hhy/zhidao/pic/item/8694a4c27d1ed21b2b25b386ab6eddc450da3fe0.jpg'
    
}

# 6.请求数据

r = requests.post(url=analyze_url,params = payload)


# In[3]:


r


# In[4]:


r.json()


# # 人脸识别实践——宿舍智能识别门禁系统创建FaceSet
# 
# * 1.查询FaceSet
# * 2.存入face_token数据
# * 3.FaceSet信息数据
# * 4.人脸搜索
# * 5.人脸对比
# 

# ## 1.创建Face Set
# * 描述
# * 1.创建一个人脸的集合 FaceSet，用于存储人脸标识 face_token。一个 FaceSet 能够存储10000个 face_token。试用API Key可以创建1000个FaceSet，正式API Key可以创建10000个FaceSet
# * URL
# https://gitee.com/link?target=https%3A%2F%2Fapi-cn.faceplusplus.com%2Ffacepp%2Fv3%2Ffaceset%2Fcreate

# In[5]:


import pandas as pd


# In[6]:


pd.read_html("""<div class="table-wrap"><table class="wrapped confluenceTable"><colgroup><col><col><col><col></colgroup><tbody><tr><th class="confluenceTh"><p><span style="color: rgb(0,0,0);">是否必选</span></p></th><th class="confluenceTh"><p><span style="color: rgb(0,0,0);">参数名</span></p></th><th class="confluenceTh"><p><span style="color: rgb(0,0,0);">类型</span></p></th><th class="confluenceTh"><p><span style="color: rgb(0,0,0);">参数说明</span></p></th></tr><tr><td class="confluenceTd"><p><span style="color: rgb(0,0,0);">必选</span></p></td><td class="confluenceTd"><p><span style="color: rgb(0,0,0);">api_key</span></p></td><td class="confluenceTd"><p><span style="color: rgb(0,0,0);">String</span></p></td><td class="confluenceTd"><p><span style="color: rgb(0,0,0);">调用此 API 的 API Key</span></p></td></tr><tr><td class="confluenceTd"><p><span style="color: rgb(0,0,0);">必选</span></p></td><td class="confluenceTd"><p><span style="color: rgb(0,0,0);">api_secret</span></p></td><td class="confluenceTd"><p><span style="color: rgb(0,0,0);">String</span></p></td><td class="confluenceTd"><p><span style="color: rgb(0,0,0);">调用此 API 的 API Secret</span></p></td></tr><tr><td class="confluenceTd"><span style="color: rgb(0,0,0);">可选</span></td><td class="confluenceTd"><span style="color: rgb(0,0,0);">display_name</span></td><td class="confluenceTd"><span style="color: rgb(0,0,0);">String</span></td><td class="confluenceTd"><span style="color: rgb(0,0,0);">人脸集合的名字，最长<span class="inline-comment-marker" data-ref="9f098728-ac30-41a2-aab6-05b79f8a7d2e">256</span>个字符，不能包括字符^@,&amp;=*'"</span></td></tr><tr><td colspan="1" class="confluenceTd"><span style="color: rgb(0,0,0);">可选</span></td><td colspan="1" class="confluenceTd"><span style="color: rgb(0,0,0);">outer_id</span></td><td colspan="1" class="confluenceTd"><span style="color: rgb(0,0,0);">String</span></td><td colspan="1" class="confluenceTd"><span style="color: rgb(0,0,0);">账号下全局唯一的 FaceSet 自定义标识，可以用来管理 FaceSet 对象。最长255个字符，<span class="inline-comment-marker" data-ref="63fc0fd1-cd44-4256-bab5-971a939d66e2"><span class="inline-comment-marker" data-ref="183dcb11-c22c-47f4-aa9c-2ba6f3c8210c">不能包括字符^@,&amp;=*'"</span></span></span></td></tr><tr><td colspan="1" class="confluenceTd"><span style="color: rgb(0,0,0);">可选</span></td><td colspan="1" class="confluenceTd"><span style="color: rgb(0,0,0);">tags</span></td><td colspan="1" class="confluenceTd"><span style="color: rgb(0,0,0);">String</span></td><td colspan="1" class="confluenceTd"><span style="color: rgb(0,0,0);">FaceSet 自定义标签组成的字符串，用来对 FaceSet 分组。最长<span class="inline-comment-marker" data-ref="1be760b6-f20d-4ff3-a086-b7f763abd84d">255</span>个字符，多个 tag 用逗号分隔，每个 tag 不能包括字符^@,&amp;=*'"</span></td></tr><tr><td class="confluenceTd"><p><span style="color: rgb(0,0,0);">可选</span></p></td><td class="confluenceTd"><p><span style="color: rgb(0,0,0);">face_tokens</span></p></td><td class="confluenceTd"><p><span style="color: rgb(0,0,0);">String</span></p></td><td class="confluenceTd"><p><span style="color: rgb(0,0,0);">人脸标识 face_token，可以是一个或者多个，用逗号分隔。最多不超过5个 face_token</span></p></td></tr><tr><td colspan="1" class="confluenceTd"><span style="color: rgb(0,0,0);">可选</span></td><td colspan="1" class="confluenceTd"><span style="color: rgb(0,0,0);">user_data</span></td><td colspan="1" class="confluenceTd"><span style="color: rgb(0,0,0);">String</span></td><td colspan="1" class="confluenceTd"><span style="color: rgb(0,0,0);">自定义用户信息，不大于<span class="inline-comment-marker" data-ref="f9edadb1-691d-4d80-933e-909096780f61">16 KB，不能包括字符^@,&amp;=*'"</span></span></td></tr><tr><td colspan="1" class="confluenceTd"><span style="color: rgb(0,0,0);">可选</span></td><td colspan="1" class="confluenceTd"><span style="color: rgb(0,0,0);">force_merge</span></td><td colspan="1" class="confluenceTd"><span style="color: rgb(0,0,0);">Int</span></td><td colspan="1" class="confluenceTd"><p><span style="color: rgb(0,0,0);">在传入 outer_id 的情况下，如果 outer_id 已经存在，是否将 face_token 加入已经存在的 FaceSet 中</span></p><p><span style="color: rgb(0,0,0);">0：不将 face_tokens 加入已存在的 FaceSet 中，直接返回 FACESET_EXIST 错误</span></p><p><span style="color: rgb(0,0,0);">1：将 face_tokens 加入已存在的 FaceSet 中</span></p><p><span style="color: rgb(0,0,0);">默认值为0</span></p></td></tr></tbody></table></div>""")[0]


# In[7]:



#2.api账户、通行证
API_KEY = 'UmmHosUEZzJI61aqoyKPhSB8sm93xnLc'
API_Secret ='3ZTKuLwcvpALsHyFu4Z-UIL5NSIR9af_'

FaceSet_url = 'https://api-cn.faceplusplus.com/facepp/v3/faceset/create'
payload = {
    'api_key':API_KEY,
    'api_secret':API_Secret
}

r = requests.post(url = FaceSet_url, params = payload)


# In[8]:


r


# In[9]:


r.json()


# ## 查询人脸库

# In[10]:


FaceSet_getfacesets_url = 'https://api-cn.faceplusplus.com/facepp/v3/faceset/getfacesets'

API_KEY = 'UmmHosUEZzJI61aqoyKPhSB8sm93xnLc'
API_Secret ='3ZTKuLwcvpALsHyFu4Z-UIL5NSIR9af_'


payload = {
    'api_key':API_KEY,
    'api_secret':API_Secret
}

r = requests.post(url = FaceSet_getfacesets_url , params = payload)


# In[11]:


r.json()


# In[12]:


faceset_token = r.json()['facesets'][-1]['faceset_token']
faceset_token


# ## 更新人脸库信息

# In[13]:


FaceSet_update_url = 'https://api-cn.faceplusplus.com/facepp/v3/faceset/update'

API_KEY = 'UmmHosUEZzJI61aqoyKPhSB8sm93xnLc'
API_Secret ='3ZTKuLwcvpALsHyFu4Z-UIL5NSIR9af_'


payload = {
    'api_key':API_KEY,
    'api_secret':API_Secret,
    'faceset_token':faceset_token,
    'display_name':'广州南方学院0栋宿舍楼',
    'new_outer_id':'NFUSD00',
    'user_data':'6层，满员，女生宿舍，400位同学，均已录入face_token'
    
}

r = requests.post(url = FaceSet_update_url , params = payload)


# In[14]:


r.json()


# In[ ]:





# ## 4.检查数据集合信息

# In[15]:


#1.url
FaceSet_getdetail_url = 'https://api-cn.faceplusplus.com/facepp/v3/faceset/getdetail'
#2.api账户、通行证
API_Key = 'UmmHosUEZzJI61aqoyKPhSB8sm93xnLc'
API_Secret ='3ZTKuLwcvpALsHyFu4Z-UIL5NSIR9af_'

# 3. 请求方法：POST
# 5.准备请求参数： payload

payload = {
    'api_key':API_Key,
    'api_secret':API_Secret,
   
    'outer_id':'NFUSD00'
}

# 6.请求数据

r = requests.post(url = FaceSet_getdetail_url,params = payload)


# In[16]:


r.json()


# ## 更新人脸库信息

# In[ ]:





# In[17]:


# D-1
getfacesets_url = "https://api-cn.faceplusplus.com/facepp/v3/faceset/getfacesets"
payload = {
    'api_key':API_Key,
    'api_secret':API_Secret,
}
r = requests.post(url = getfacesets_url, params = payload)


# In[18]:


r.json()


# In[19]:


import detect


# In[20]:


help(detect)


# In[21]:


detect.face_detect(API_Key,API_Secret,'Liu_01.jpeg')


# ## 人脸存放
# * 1 描述
# * 为一个已经创建的 FaceSet 添加人脸标识 face_token。一个 FaceSet 最多存储1,000个 face_token。
# * 注意：2017年8月16日后，一个 FaceSet 能够存储的 face_token 数量将从 1000 提升至 10000。
# * 调用 URL
# * https://api-cn.faceplusplus.com/facepp/v3/faceset/addface

# In[25]:


# 人脸检测
import detect
image_url = 'wj.jpg'
detect.face_detect(API_Key,API_Secret,image_url)


# In[26]:


face_token_wj = detect.face_detect(API_Key,API_Secret,image_url)['faces'][0]['face_token']
face_token_wj


# In[ ]:





# In[ ]:





# In[ ]:





# In[ ]:




